﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be

Partial Class mantenedores_descuento
    Inherits System.Web.UI.Page
    Implements System.Web.UI.ICallbackEventHandler
    Private proyectos As List(Of Eproyecto) = Nothing
    Private tpoDescuentos As List(Of Edescuento) = Nothing
    Private descuentos As List(Of Edescuento) = Nothing

#Region "          Formulario                               "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        If Not IsPostBack Then
            cargarProyecto()
            cargarTpoDescuento()
        End If
        '***********************************************************'
        'Me.Page.ClientScript.GetPostBackClientHyperlink(Me.btnGrabar, String.Empty)
        'Dim sb As New StringBuilder
        'sb.Append(Me.Page.ClientScript.GetPostBackEventReference(Me.btnGrabar, vbNullString))
        'sb.Append(";")
        'btnGrabar.Attributes("onclick") = sb.ToString()
        btnAgregar.Attributes.Add("onclick", "jMuestraPanel(); return false;")
        Dim cbReference As String
        cbReference = Page.ClientScript.GetCallbackEventReference(Me, "arg", "ReceiveServerData", "null", True)
        Dim callbackScript As String = ""
        callbackScript &= "function CallTheServer(arg)" & _
                          "{" & cbReference & "; }"

        Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "CallTheServer", callbackScript, True)
    End Sub
    Private Function cargarLista() As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)
        descuentos = Rdescuento.SeleccionarTodo(Me.Master.descEmpresa, False)
        Session("lista") = descuentos
        Me.gvwLista.DataSource = descuentos
        Me.gvwLista.DataBind()
        Me.gvwLista.RenderControl(htm)
        htm.Flush()
        Return sr.ToString()
    End Function
    Private Sub cargarProyecto() 'JF
        proyectos = Rdescuento.SeleccionarProyecto(Me.Master.descEmpresa, True)
        selProyecto.DataSource = proyectos
        selProyecto.DataTextField = "descProyecto"
        selProyecto.DataValueField = "idProyecto"
        selProyecto.DataBind()
    End Sub
    Private Sub cargarTpoDescuento() 'JF
        tpoDescuentos = Rdescuento.SeleccionarTpoDescuento(Me.Master.descEmpresa, True)
        selTpoDescuento.DataSource = tpoDescuentos
        selTpoDescuento.DataTextField = "descTpoDescuento"
        selTpoDescuento.DataValueField = "idTpoDescuento"
        selTpoDescuento.DataBind()
    End Sub

    Private Sub cargarEstado()
        Dim Eestado As New Ecommons
        selEstado.DataSource = Eestado.estado
        selEstado.DataTextField = "descripcion"
        selEstado.DataValueField = "codigo"
        selEstado.DataBind()
    End Sub
    Protected Sub gvwLista_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwLista.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Private Function obttenerEdit(ByVal pLDescuentos As System.Linq.IOrderedEnumerable(Of Edescuento)) As String
        Dim datos As New StringBuilder
        datos.Append(pLDescuentos.ElementAt(0).idDscto.ToString + "|")
        datos.Append(pLDescuentos.ElementAt(0).descDscto.Trim + "|")
        datos.Append(pLDescuentos.ElementAt(0).dsctoMin.ToString + "|")
        datos.Append(pLDescuentos.ElementAt(0).dsctoMax.ToString + "|")
        datos.Append(pLDescuentos.ElementAt(0).descProyecto.ToString + "|")
        datos.Append(pLDescuentos.ElementAt(0).descTpoDescuento.ToString + "|")
        datos.Append(pLDescuentos.ElementAt(0).idProyecto.ToString + "|")
        datos.Append(pLDescuentos.ElementAt(0).idTpoDescuento.ToString + "|")
        datos.Append(pLDescuentos.ElementAt(0).estado.Trim)
        Return datos.ToString()
    End Function
#End Region

#Region "          CallBack                                 "
    Private _callbackArgument As String
    Public Function GetCallbackResult() As String Implements System.Web.UI.ICallbackEventHandler.GetCallbackResult
        Return _callbackArgument
    End Function
    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        Try
            If eventArgument <> String.Empty Then
                Dim varParams() As String = eventArgument.Split("@")
                Dim sr As New System.IO.StringWriter()
                Dim htm As New HtmlTextWriter(sr)
                _callbackArgument = ""
                Select Case varParams(0)
                    Case "divgvwLista"
                        _callbackArgument = varParams(0).ToString + "|" + cargarLista()
                    Case "divddlEstado"
                        Dim Eestado As New Ecommons
                        Me.selEstado.DataSource = Eestado.estado
                        Me.selEstado.DataTextField = "descripcion"
                        Me.selEstado.DataValueField = "codigo"
                        Me.selEstado.DataBind()
                        Me.selEstado.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divGuardar"
                        Dim estado As String = CType(varParams(1), String)
                        Dim pDescuento As Edescuento = Nothing
                        If estado.Equals("nuevo") Then
                            pDescuento = New Edescuento
                            With pDescuento
                                .descDscto = CType(varParams(3), String).ToUpper.Trim
                                .dsctoMin = CType(varParams(4), Decimal)
                                .dsctoMax = CType(varParams(5), Decimal)
                                .idUsuario = Me.Master.idUsuario
                                .idProyecto = CType(varParams(7), Integer)
                                .idTpoDescuento = CType(varParams(8), Integer)
                            End With
                            If Rdescuento.Añadir(Me.Master.descEmpresa, pDescuento) Then
                                _callbackArgument = varParams(0).ToString + "|divGuardar|True|" + cargarLista()
                            Else
                                _callbackArgument = varParams(0).ToString + "|divGuardar|False"
                            End If
                        Else
                            pDescuento = New Edescuento
                            With pDescuento
                                .idDscto = CType(varParams(2), Int32)
                                .descDscto = CType(varParams(3), String).ToUpper.Trim
                                .dsctoMin = CType(varParams(4), Decimal)
                                .dsctoMax = CType(varParams(5), Decimal)
                                .estado = CType(varParams(6), Int32)
                                .idUsuario = Me.Master.idUsuario
                                .idProyecto = CType(varParams(6), Integer)
                                .idTpoDescuento = CType(varParams(8), Integer)
                            End With
                            If Rdescuento.Editar(Me.Master.descEmpresa, pDescuento) Then
                                _callbackArgument = varParams(0).ToString + "|divModificar|True|" + cargarLista()
                            Else
                                _callbackArgument = varParams(0).ToString + "|divModificar|False"
                            End If
                        End If
                    Case "divShowDet"
                        Dim id As Int32 = CType(varParams(1), Int32)
                        descuentos = Session("lista")
                        _callbackArgument = "detalle|divShowDet|Descuento [Modificar]|" + obttenerEdit(From c In descuentos _
                                                                                                    Where c.idDscto = id _
                                                                                                    Select c _
                                                                                                    Order By c.idDscto)
                    Case "divDelete"
                        Dim pDescuento As New Edescuento
                        With pDescuento
                            .idDscto = CType(varParams(1), Int32)
                            .idUsuario = Me.Master.idUsuario
                        End With
                        Rdescuento.Eliminar(Me.Master.descEmpresa, pDescuento)
                        _callbackArgument = "divgvwLista|" + cargarLista()
                    Case "divBuscar"
                        Dim pDscto As New Edescuento With {.filtro = varParams(1).ToUpper.Trim}
                        descuentos = Rdescuento.Buscar(Me.Master.descEmpresa, False, pDscto)
                        Session("lista") = descuentos
                        Me.gvwLista.DataSource = descuentos
                        Me.gvwLista.DataBind()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwLista|" + sr.ToString()
                    Case "divExcel"
                        'M. Herramientas / Opciones de Internet / Seguridad / Nivel personalizado / Controles y componentes ActiveX / Inicializar y generar scripts de los controles ActiveX no marcados como seguros para scripts / Activar.

                        descuentos = Session("lista")
                        Me.gvwLista.DataSource = descuentos
                        Me.gvwLista.DataBind()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        '_callbackArgument = "divgvwLista|divExcel|" + sr.ToString()

                        'Dim objTb As New HtmlTable
                        'Dim f As New TableRow With {.TableSection = TableRowSection.TableHeader, .CssClass = "captionInmueble"}
                        'Dim c As New TableCell With {.ColumnSpan = 10, .Text = "ejemplo", .HorizontalAlign = HorizontalAlign.Center}
                        'f.Controls.Add(c)
                        'objTb.Controls.Add(f)


                        Dim sd As New StringBuilder
                        sd.Append("<TABLE id=idTable cols=3 name=idTable>")
                        sd.Append("<TR>")
                        sd.Append("<TH>Titulo 1</TH>")
                        sd.Append("<TH>Titulo 2</TH>")
                        sd.Append("<TH>Titulo 3</TH>")
                        sd.Append("</TR>")
                        sd.Append("<TR><TD>Celda 1</TD><TD>Celda 5</TD><TD>Celda 5</TD></TR>")
                        sd.Append("<TR><TD><b>Celda 2</b></TD><TD>Celda 6</TD><TD>Celda 5</TD></TR>")
                        sd.Append("<TR><TD>Celda 3</TD><TD>Celda 7</TD><TD>Celda 5</TD></TR>")
                        sd.Append("<TR><TD>Celda 4</TD></TR>")
                        sd.Append("</TABLE>")


                        'sd.Append("<table class='CssGvwLista' cellspacing='0' cellpadding=0' rules='cols' border='1' id='ctl00_ContentPlaceHolder1_gvwLista' style='color:Black;background-color:White;border-color:#DEDFDE;border-width:1px;border-style:None;font-family:Verdana;font-size:9px;width:100%;border-collapse:collapse;'>")
                        'sd.Append("<tr class='RowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@1');'>00001</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@1');'>SALA DE VENTAS OK</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@1');'>0.07</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@1');'>0.07</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@1');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('1')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr><tr class='AlternatingRowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@2');'>00002</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@2');'>CONTADO MENOR A 3</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('2')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr><tr class='AlternatingRowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@2');'>00002</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@2');'>CONTADO MENOR A 3</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('2')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr><tr class='AlternatingRowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@2');'>00002</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@2');'>CONTADO MENOR A 3</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('2')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr><tr class='AlternatingRowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@2');'>00002</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@2');'>CONTADO MENOR A 3</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('2')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr><tr class='AlternatingRowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@2');'>00002</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@2');'>CONTADO MENOR A 3</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('2')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr><tr class='AlternatingRowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@2');'>00002</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@2');'>CONTADO MENOR A 3</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('2')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr><tr class='AlternatingRowStyleGridView' OnMouseOver='Resaltar_On(this);' OnMouseOut='Resaltar_Off(this);' style='cursor:hand;'>")
                        'sd.Append("<td align='center' style='height:20px;width:10%;'><div onclick ='CallTheServer('divShowDet@2');'>00002</div></td><td align='left' style='height:20px;width:34%;'><div onclick ='CallTheServer('divShowDet@2');'>CONTADO MENOR A 3</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>0.02</div></td><td align='center' style='height:20px;width:15%;'><div onclick ='CallTheServer('divShowDet@2');'>HABILITADO</div></td><td align='center' style='height:20px;width:10%;'><img id='imgDel' src='../Imagenes/Procesos/borrar.png' alt='Eliminar Cliente' onclick='jDeleteDetalle('2')' style='cursor:pointer' /></td>")
                        'sd.Append("</tr>")
                        'sd.Append("</table>")

                        _callbackArgument = "divgvwLista|divExcel|" + sd.ToString()

                        'descuentos = Session("lista")
                        'If Not descuentos Is Nothing Then
                        '    Dim fileName As String = "Consulta {0}.xls"
                        '    fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
                        '    Dim Response As HttpResponse = HttpContext.Current.Response
                        '    Response.ContentType = "application/vnd.ms-excel"
                        '    Response.Charset = "UTF-8"
                        '    Response.ContentEncoding = System.Text.Encoding.Default
                        '    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)
                        '    Response.Write("Id")
                        '    Response.Write(vbTab)
                        '    Response.Write("Descripción")
                        '    Response.Write(vbTab)
                        '    Response.Write("Estado")
                        '    Response.Write(vbTab)
                        '    Response.Write(vbCrLf)
                        '    Dim value As String
                        '    For Each dscto In descuentos
                        '        value = dscto.idDscto
                        '        Response.Write(value)
                        '        Response.Write(vbTab)
                        '        value = dscto.descDscto
                        '        Response.Write(value)
                        '        Response.Write(vbTab)
                        '        value = dscto.descEstado
                        '        Response.Write(value)
                        '        Response.Write(vbCrLf)
                        '    Next
                        '    Response.End()
                        '    Response.Flush()
                        '    _callbackArgument = "divgvwLista|" + sr.ToString()

                        'Else
                        '    Dim jsMensaje As String = Nothing
                        '    jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada. Por favor inténtelo de nuevo.');</script>)"
                        '    Controls.Add(New LiteralControl(jsMensaje))
                        'End If
                End Select
            End If
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
#End Region

End Class
